package testes;

import static org.junit.Assert.*;

import java.util.HashSet;
import java.util.Set;

import org.bunny.businessLayer.Campeonato;
import org.bunny.businessLayer.Continente;
import org.bunny.businessLayer.Grupo;
import org.bunny.businessLayer.Pais;
import org.bunny.businessLayer.Participacao;
import org.bunny.businessLayer.TipoCampeonato;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class CampeonatoTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testCampeonato() {
		Campeonato a = new Campeonato();
		assertNotNull(a);
		assertTrue(Campeonato.allInstances.contains(a));
	}


	
	@Test
	public void testCampeonatoTipoCampeonatoString() {
		Campeonato a = new Campeonato(TipoCampeonato.Europeu, "Euro2012");
		
		
		a.setGenero(TipoCampeonato.Mundial);
		assertEquals(TipoCampeonato.Mundial, a.genero());

		a.setGenero(TipoCampeonato.Europeu);
		assertEquals(TipoCampeonato.Europeu, a.genero());
		
		assertEquals(TipoCampeonato.Mundial,TipoCampeonato.valueOf("Mundial"));
		
		a.setNome("Euro 2016");
		assertEquals("Euro 2016",a.nome());
		
		Grupo g1 = new Grupo();
		Grupo g2 = new Grupo();
		Set<Grupo> grupos = new HashSet<Grupo>();
		grupos.add(g2);
		
		a.setGrupos(grupos);
		assertEquals(grupos,a.grupos());
		
		Participacao p1 = new Participacao();
		Participacao p2 = new Participacao();
		Set<Participacao> participacao = new HashSet<Participacao>();
		participacao.add(p2);
		
		a.setParticipacao(participacao);
		assertEquals(participacao,a.participacao());
		Continente eu = new Continente("Europa");
		Grupo gru = new Grupo();
		
		Pais pa1 = new Pais(2,"Port",24,eu,gru);
		Pais pa2 = new Pais(7,"Esp",5,eu,gru);
		Pais pa3 = new Pais(8,"Fran",27,eu,gru);
		Set<Pais> participante = new HashSet<Pais>();
		participante.add(pa2);
		participante.add(pa3);
		
		//assertEquals(2,participante.size());
		Set<Participacao> lista = Participacao.allInstances;
		int size = lista.size();
		//assertEquals(3,size);
		
		a.setParticipante(participante);
		Set<Pais> lol =a.participante();
		int size2 = lol.size();

		int ah = 5;
		//assertEquals(participante,lol);
	}
}
